package edu.tfg.plano;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import edu.tfg.cliente.Cliente;
import edu.tfg.endereco.Endereco;
import edu.tfg.lojista.Lojista;
import edu.tfg.produto.Produto;



	@Entity
	@Table(name="plano")
	public class Plano {
		
		@Id
		@GeneratedValue
		private Integer id;
		private String nome;
		private String descricao;
		private double valor;
		@Column (name="data_abertura")
		private Date dataAbertura;
		@Column (name="data_cancelamento")
		private Date dataCancelamento;
		private String situacao;
		@ManyToOne
		@JoinColumn(name="id_cliente", nullable=false)
		private Cliente cliente;
		@ManyToOne
		@JoinColumn(name="id_lojista", nullable=false)
		private Lojista lojista;
		@OneToOne
		@JoinColumn(name="id_endereco")
		private Endereco endereco;
		@ManyToOne
		@JoinColumn(name="id_produto", nullable=false)
		private Produto produto;
		
		public Plano(Produto produto, Cliente clienteSelecionado) {
			this.produto = produto;
			this.cliente = clienteSelecionado;
		}

		public Plano() {
		}

		
		public Integer getId() {
			return id;
		}
		public void setId(Integer id) {
			this.id = id;
		}
		public Cliente getCliente() {
			return cliente;
		}
		public void setCliente(Cliente cliente) {
			this.cliente = cliente;
		}
		public Lojista getLojista() {
			return lojista;
		}
		public void setLojista(Lojista lojista) {
			this.lojista = lojista;
		}
		public String getNome() {
			return nome;
		}
		public void setNome(String nome) {
			this.nome = nome;
		}
		public String getDescricao() {
			return descricao;
		}
		public void setDescricao(String descricao) {
			this.descricao = descricao;
		}
		public double getValor() {
			return valor;
		}
		public void setValor(double valor) {
			this.valor = valor;
		}
		public Date getDataAbertura() {
			return dataAbertura;
		}
		public void setDataAbertura(Date dataAbertura) {
			this.dataAbertura = dataAbertura;
		}
		public Date getDataCancelamento() {
			return dataCancelamento;
		}
		public void setDataCancelamento(Date dataCancelamento) {
			this.dataCancelamento = dataCancelamento;
		}
		public String getSituacao() {
			return situacao;
		}
		public void setSituacao(String situacao) {
			this.situacao = situacao;
		}
		public Endereco getEndereco() {
			return endereco;
		}
		public void setEndereco(Endereco endereco) {
			this.endereco = endereco;
		}
		
		public Produto getProduto() {
			return produto;
		}
		public void setProduto(Produto produto) {
			this.produto = produto;
		}
		

}
